1. Statement of the Technical Field
The present invention relates to the field of universal database access and more particularly to an edge-deployed database proxy driver.
2. Description of the Related Art
As business organizations deploy important business applications over the Internet, challenges arise in the form of processing delays and network latencies. Specifically, the placement of application content in a centralized server can compel users' requests to traverse multiple congested networks in an attempt to effectively interact with the application. As a result, this centralized approach to deploying applications on the Internet can hinder the attainment of scalability, reliability and performance levels that are considered “mission-critical” in the deployment of a business application.
In consequence of the inherent deficiencies of the centralized approach, there has been a recent trend to move more application processing functions to the edge of the network. In lay terms, the “edge” of the network refers to that portion of a publicly accessible network which is disposed communicatively closer to the end-user. While the positioning of servers and other network devices at the edge of the network can bear direct relation to the geographical positioning of the end-users, in some cases, the positioning of servers at the edge of the network can bear closer relation to the available communications bandwidth and the performance of network components linking end-users to the servers.
Importantly, many applications which benefit from edge-deployed applications are database-driven, or at least database dependent in some way. For example, some e-business applications interact with database servers in which business data can be stored. While some conventional database servers can be accessed through a proprietary database connectivity interface, in recent years, database driven applications have been able to access database servers through database access middleware.
Database access middleware provides a stylized connection between an application computer program and a database. By stylized connection, it is meant that a database link has a formal, published definition. This formal, published definition can identify the interface through which connected application programs can issue data access requests and, in response thereto, receive database content through the database link. Two contemporary examples of database access middleware include the Open Database Connectivity (ODBC) and JDBC™ (Sun Microsystems, Inc.) specifications. ODBC and JDBC are important connectivity technologies because presently, ODBC and JDBC have been implemented in a bevy of disparate platforms while providing a common interface to several different database servers.
Primarily, database access middleware shuttles data requests and database content to and from application programs. In addition, database access middleware helps to ensure security, and it insulates the application from having to interact directly with the database server. Generalized query tools can utilize database access middleware (rather than the database server itself) to provide query services for multiple types of database products. Also, computer programs written according to Visual Basic, C, C++, Pascal, COBOL and other programming languages can perform database operations via ODBC. By comparison, programs based upon Java™ (Sun Microsystems, Inc.) technology can use JDBC to perform database operations.
JDBC technology is an application programming interface (API), often erroneously referred to as “Java Database Connectivity”, that permits application programs to access virtually any tabular data source using the Java programming language. In consequence, JDBC technology provides cross-database management system (DBMS) connectivity to a wide range of databases, and other tabular data sources, such as spreadsheets or flat files. With a JDBC-enabled driver, a developer can easily connect all corporate data even in a heterogeneous environment.
Presently, it is known to deploy both middleware and application management programs at the edge of the network. These application management programs can include load balancers, database caches and application analyzers. Still, the explicit use of such application management programs in conjunction with middleware requires the coordinated re-tooling of the client application, the database server, or both. Yet, in many cases, the operation of the application management programs can capitalize upon operational data generated in the course of providing data access through the middleware.